/**
 * 
 * @author Ivam Henrique Marques dos Santos
 *         email: ivam.santos@skytef.com.br
 *         skype: ivam.santos.skytef
 *         telefone: +55 11 96214-7543
 */
package br.skytef.stmanager.beans;

import java.io.IOException;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import br.skytef.stmanager.daos.UsuarioDao;
import br.skytef.stmanager.entities.UsuarioEntity;

/**
 * Class Controller UsuarioBean
 */

@ManagedBean(name="UsuarioBean")
@SessionScoped
public class UsuarioBean {	

	/**
	 * Campos com seus respectivos Getters e Setters.
	 */
	public UsuarioEntity getUsuario() {return usuario;}
	public void setUsuario(UsuarioEntity usuario) {this.usuario = usuario;}	
	private UsuarioEntity usuario;

	public Integer getId () {return id;}
	public void setId(int id) {this.id = id;}
	private int id;

	public UsuarioEntity getAlterar() {return alterar;}
	public void setAlterar(UsuarioEntity alterar) {this.alterar = alterar;}	
	private UsuarioEntity alterar;

	public String getNome() {return nome;}
	public void setNome(String nome) {this.nome = nome;}
	private String nome;

	public String getEmail() {return email;}
	public void setEmail(String email) {this.email = email;}
	private String email;

	public String getTelefone() {return telefone;}
	public void setTelefone(String telefone) {this.telefone = telefone;}
	private String telefone;

	public String getSkype() {return skype;}
	public void setSkype(String skype) {this.skype = skype;}
	private String skype;

	public String getLogin() {return login;}
	public void setLogin(String login) {this.login = login;}
	private String login;

	public String getSenha() {return senha;}
	public void setSenha(String senha) {this.senha = senha;}
	private String senha;

	public String getSenhaAtual() {return senhaAtual;}
	public void setSenhaAtual(String senhaAtual) {this.senhaAtual = senhaAtual;}
	private String senhaAtual;

	public String getTipo() {return tipo;}
	public void setTipo(String tipo) {this.tipo = tipo;}
	private String tipo ;

	public String getConfsenha() {return confsenha;}
	public void setConfsenha(String confsenha) {this.confsenha = confsenha;}
	private String confsenha;

	public boolean isStatus() {return status;}
	public void setStatus(boolean status) {this.status = status;}
	private boolean status = true;

	public String getVisible() {return visible;}
	public void setVisible(String visible) {this.visible = visible;}	
	private String visible = "false";

	/**
	 * Método para incluir novo usuário
	 * @param ActionEvent
	 * @throws IOException
	 */
	public void	salvar(ActionEvent actionEvent) throws IOException{		

		if (senha.equals(confsenha)){
			usuario = new UsuarioEntity(id,nome, email, telefone, skype, login, senha, tipo,status);
			new UsuarioDao().inserir(usuario);
			DashboardBean.pageHome();
		}else{
			FacesContext facesContext = FacesContext.getCurrentInstance(); 
			facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Erro cadastrar:", "Senhas não correspondem"));
		}
	}



	public void	Buscar(ActionEvent actionEvent) throws IOException{	
		this.visible = "true";
		usuario = new UsuarioDao().buscar(nome);

	}

	public void Atualizar(ActionEvent actionEvent)throws IOException{	
		id = usuario.getId();

		if (!senhaAtual.equals(senha) && usuario.getSenha().equals(senhaAtual) && senha.equals(confsenha)){
			alterar = new UsuarioEntity(id,nome, email, telefone, skype, login, senha, tipo,status);
			new UsuarioDao().alterar(alterar);
			FacesContext facesContext = FacesContext.getCurrentInstance(); 
			facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Sucesso:", "Senha atualizada"));

		}else{
			FacesContext facesContext = FacesContext.getCurrentInstance(); 
			facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN,"Erro cadastrar:", "Senha atual inválida"));

		}
	}

}
